var LGDSElement = Class.create({
  // TODO (or not) size object <= w + h
  initialize: function (img) {
    this.element = new Element("img");
    this.element.src = img;
    // Style
    this.element.setStyle({
      position: 'absolute',
      border: '0px'
    });
    this.imgBase = img;
    this.imgRoll;
  },
  setPos: function (x, y, z) {
    this.element.setStyle({
      left: x + 'px',
      bottom: y + 'px',
      zIndex: z
    });
  },
  get: function () {
    return this.element;
  },
  setEvent: function (func) {
    this.element.observe('click', func);
  },
  setRollOverImg: function (img) {
    this.imgRoll = img;
    this.element.observe('mouseover', this.rollOver.bind(this));
    this.element.observe('mouseout', this.rollOut.bind(this));
  },
  // private
  rollOver: function () {
    this.element.src = this.imgRoll;
  },
  // private
  rollOut: function () {
    this.element.src = this.imgBase;
  },
  changeImg: function (img) {
    this.imgBase = img;
    this.element.src = img;
  }
});